Flush outputs (Amp.*, Poten.*, etc.)#40
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #40 +/- ##
==========================================
- Coverage 54.08% 53.95% -0.13%
==========================================
Files 41 41
Lines 5985 6016 +31
Branches 807 810 +3
==========================================
+ Hits 3237 3246 +9
- Misses 2399 2420 +21
- Partials 349 350 +1 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
Thanks, I'll have to think about this, since this will likely slow down simulations with analytical potentials a lot. Note that I think we already flush FMS.out which can be checked that the simulation is progressing. I do agree that it might be useful to print stuff more often in a more typical case of ab initio simulations. Side note, I am currently on holidays for the next two weeks so will be unlikely to do much reviewing. |
|
Thanks for the feedback!
That makes sense, and you're right that FMS.out lets you track the progress of the dynamics.
Would an opt-in flag (e.g., flushAllOutputs=.true.) work? Happy to implement it if you think it's worthwhile. For context: on difficult trajectories I've tailed these outputs to verify restart correctness and check sensitivity to tightened thresholds (e.g., reproducibility of Amp and N values). This is especially helpful for CC dynamics, where 10 time steps can be an hour of wall time and early termination can save a lot of time. |
|
Apologies for slow response here, as I wasn't sure what's the best course of action here.
I think having Given the overall state of the codebase, I don't feel like such a refactor is super-high priority at the moment, but I understand that it might be more important for others. |
Thanks for the feedback. That makes sense. Totally understand that this is lower down on the list of things to prioritize.
I think flushing all the files is not especially high-priority to me. The current version of our interface will log any request made by FMS, so there are ways for us to know what is going on (without having to tail FMS output files). However, with additional testing I've noticed that also FMS.out is not flushed consistently. (In one example I did not see any Perhaps a more compelling reason to flush a subset of outputs is that we often run "open-ended" dynamics simulations where we don't know how far we will get with our computational resources. In these cases it would be unfortunate if significant amounts of time-data has already been generated by OpenFMS but there's no way for us to extract it. In my experience, I've found it most useful to have |
Yep, happy to flush these unconditionally for now, feel free to open a new PR or modify this one.
Yeah, interesting. My initial instinct would be to flush this file at the end of every time step, but the spawning algorithm and the adaptive time step make that more complicated. Feel free to add flushes at some critical points as well. |
|
Opened a separate PR to flush some files unconditionally, #51. Closing this one. |
Suggestion to flush output files (Amp, Poten, etc.) so that we can follow the simulation in real time. Locally, I was seeing my tests running for hundreds of au without showing any lines in the outputs. These changes should make sure we see each timestep in the output files right after the write happens.